package com.c2rusthub.service.service;

import com.c2rusthub.service.mapper.TaskMapper;
import com.c2rusthub.service.model.Task;
import com.c2rusthub.service.response.TaskStatisticsResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TaskService {

    @Autowired
    private TaskMapper taskMapper;

    @Autowired
    private TranslatedService translatedService;

    public TaskStatisticsResponse getTaskStatistics() {
        int unclaimedCount = taskMapper.getUnclaimedTaskCount();  // 查询待认领任务数量
        int completedCount = translatedService.getCompletedTaskCount();  // 查询已完成任务数量
        return new TaskStatisticsResponse(unclaimedCount, completedCount);
    }


    // 根据 ID 获取任务
    public Task getTaskById(Integer id) {
        return taskMapper.findById(id);
    }

    // 获取所有任务
    public List<Task> getAllTasks() {
        return taskMapper.findAll();
    }

    // 根据 cUrl 获取任务列表
    public List<Task> getTaskListByCUrl(String cUrl) {
        return taskMapper.findTasksByCUrl(cUrl);
    }

    // 更新任务的热度
    public boolean increaseTaskHeat(int taskId) {
        // 调用 Mapper 层的更新方法
        int updatedRows = taskMapper.updateTaskHeat(taskId);
        return updatedRows > 0;  // 如果更新成功，则返回 true
    }

    // 发布转译任务
    public boolean releaseTask(Task taskReleaseRequest) {
        // 调用 Mapper 层的保存任务方法
        int rowsInserted = taskMapper.insertTask(taskReleaseRequest);
        return rowsInserted > 0;  // 如果插入成功，则返回 true
    }

    /**
     * 查询可认领的任务列表
     *
     * @return List<Task> 可认领的任务列表
     */
    public List<Task> getClaimableTaskList() {
        return taskMapper.findClaimableTasks();
    }
}


